In a system using the UMTS standard defined in the standard 3GPP (3GPP TS 25.212); data are decoded when they are received in a receiver of such a system. Such a receiver comprises a decoder in an integrated circuit. Said decoder also currently called turbo-decoder comprises two soft input-soft output steps also called SISO which are inter-dependant. A SISO step signifies the decoding of input data alternatively with interleaved data streams (called SISO2) or with non-interleaved data streams (called SISO1).
During the decoding process, a trellis of the possible states of the coding is defined.
In the document referenced “Implementation issues of 3rd generation mobile communication turbo decoding”. (J. Dielissen and J. Huisken). In 21st Symposium on Information Theory in Benelux, pages 9-16, May 2000, Wassenaar, The Nederlands, the decoding of a data block B is done in the following manner.
A SISO step manages some forward recursion processing forward state metric vectors α, some backward recursion processing state metric vectors β and these state metric vectors are used in an extrinsic calculation outputting some probability factors λ, within the trellis of possible states of coding.
In order to perform the decoding, a system of sliding windows is used. It is based on a split of the input data received by the receiver into windows of data.
The principle of the sliding windows is shown on FIG. 1.
A data block B received by the decoder is split into windows of size W and one unique computation unit is executing the 2 SISO steps. Said unit computes in a sequential way, window after window the state metrics and the probability factor of each SISO step. A plurality of iterations is performed in order to converge to the right factor of probability. A single iteration comprises a first and a second SISO step.
At a first iteration ITER_N, the computation unit performs the computations of the first SISO step SISO1.
For a first window 0-W, the computation unit does a first forward recursion and processes a first set of forward state metrics α. During the second window W-2W, the computation unit performs a second forward recursion and processes a second set of forward state metrics α. In parallel with this second forward recursion, it performs a first backward recursion that processes a first set of backward state metrics β. Note that the probability factor λ calculation starts immediately after the corresponding backward state metrics vector β has been calculated.
During the third window 2W-3W, the computation unit performs a third forward recursion, and a second backward recursion and so on until the last window (B-W)-B of the first iteration ITER_N.
Then the computation unit performs exactly the same kind of computations for the second SISO step SISO2.
Note that, during backward recursion, at each new window the last backward state metric vector β is saved. It will be used to initialize the next iteration's previous window at the same SISO step (SISO 1 in case of SISO 1 and SISO 2 in case of SISO 2). One window is thus dependant from on another window.
One major problem of the prior art is that for high throughput of data, the solution of the prior art is too time consuming.